home *** CD-ROM | disk | FTP | other *** search
- All right. I've noticed a number of people asking about putting
- an external keyboard on their 1200's. Unfortunately, the only replies
- they got said it couldn't be done, or that it would be very difficult. Neither
- of these is true. Electronically, the keyboard interface is pretty much the
- same as it always has been. The only real obstacles are physical; Thus I
- decided to make an attempt, and recently managed to pull it off. What follows
- is an account of what I did along with a few suggestions. Be sure to read it
- through all the way before breaking out the tools...
-
- It's been working well so far (I'm typing this on my good old A1000
- keyboard hooked up to my 1200 right now.) The result is that I can have
- both an internal and external keyboard hooked up simultaneously without
- interference. In fact, they complement one another. You can actually press
- shift on one keyboard and 's' on the other and get a capital 'S'! Those old
- 6570 keyboard controllers are quite robust, seemingly in contrast to the on
- board one in the 1200.
-
- Needless to say, doing this modification required some very delicate
- work. The internal keyboard micro has to be physically taken off-line
- in order to connect an external keyboard or keyboards. This isn't like the
- 500 where all you had to do to hook up an external was to patch into
- the KCLK and KDAT lines, tap +5 and Ground from somewhere and you
- were done. The 6570's took care of all the handshaking automatically.
- Unfortunately, the 1200's keyboard micro doesn't work that way. Hooking
- up another keyboard in parallel with it's clock + data lines just hangs both
- of them. (My guess is that the output isn't open-collector like it
- is on the externals, (there's no reason for it to be) so when you have
- an external hooked up, the internal can't drive its 0's low enough.)
- Anyway, I just decided to do away with the internal controller altogether.
-
- Um...let me just say this... I'm not really writing this post in the
- form of a full blown hardware hack. This is more of a "Here's what I did.
- If you'd like to give it a shot, here's what you need to know." sort
- of thing. I'm not going to go into disassembly instructions or anything
- like that. I will make the standard disclaimer, though: If you try this and
- you blow up your machine, don't come crying to me. There are some quite
- tiny spots that have to be soldered and/or desoldered, so patience, a
- steady hand, and a reasonably sharp soldering iron are a definite
- necessity. If there's enough support for turning this into a full article
- I'll throw something together. (My brother suggested submitting it to
- AC, but it may be a bit hardcore for them. Schematically, it's quite
- simple, but the tiny joints do make it a little more difficult. Maybe
- Aminet...
-
- Okay, with that out of the way here are the gooey details. The two
- chips we'll be dealing with are U13 (The keyboard micro) and U7 (The
- keyboard/parallel 8520). Try to keep your soldering iron and any other
- potentially destructive tools away from the other chips. ;^) The KBClk and
- KBDat pins on the keyboard micro need to be heated and bent up away
- from the motherboard. I touched the top of the pin with the iron, let it heat
- for a second and then, with a razor-knife wedged behind the pin, twisted,
- lifting the pin away from the board. There's not much solder holding these
- down, so it shouldn't take too much force. Once the pin was free, I straight
- ened it up with a pair of needle-nose pliers and went on to the next one.
- Fortunately, both pins are right next to each other and the keyboard micro
- (and the 8520) are surface-mounted PLCC's and not true SMD's. These
- are the only two pins that need to be desoldered. The rest of this hack just
- involves soldering wires in.
- ***NOTE: I've heard from at least two people that their internal micros did not
- need to be taken offline for the external to work. All I know is that on mine
- it had to be disconnected. Your Mileage May Vary, however, so you may
- want to try skipping this step, do the rest, and see if it works.***
-
- Get your hands on the smallest insulated wire you can find (>24 awg),
- and solder wires to the KBClk, KBDat and _KBReset lines as shown in the diagram
- below. The number of pins on the chips should be accurate. they are 44 pin
- PLCC's, with 11 pins on each side. The ^ denotes the pin 1 dot on the chips.
-
- ----------------------------------------------------------------------------
-
- |||||||||||
- -+-----------+-
- -| |-
- -| |-
- -| 8520PL |-
- -| |-
- -| U7 |-
- -| |-
- -| |-
- -| |-
- -| ^ |-
- -+-----------+-
- |||||||||||
- ||
- | \KBDat (Solder wire here)
- ||||||||||| |
- -+-----------+- \KBClk (Solder wire here)
- -| |-
- -| |-
- -| Keyboard |---KBClk (Desolder + bend up) Floppy
- -| Micro. |---KBDat (Desolder + bend up) Power
- -| |-
- -| U13 |- ....
- -| |- To ||
- -| |- Front ||
- /---| ^ |- of +5v/|
- | -+-----------+- Machine / |
- | ||||||||||| || (Tap +5 and Gnd. from |
- | || these wires.)-------Gnd /
- \_KBReset (Solder wire here) ||
- ||
- \/
-
- ----------------------------------------------------------------------------
-
- As you can see, power is easily tapped from the floppy cable. You
- should use somewhat larger wires for this. Thus, when you're done you
- should have five wires coming out of your machine: KBClk, KBDat,
- _KBReset, +5, and Gnd. You will also have a non-functional internal key
- board. If you want, however, you can take these wires (except _KBReset)
- and hook them up to a 5 pin DIN and attach a 2000/3000 keyboard, or a
- phone plug and connect a 1000 keyboard. There is a catch, however. You
- will not be able to reset from the external keyboard. 1000s, 2000s, 3000s,
- and 4000s have internal circuitry which interprets 500 milliseconds of
- KBClk low as a "reset" pulse, and pulls the _KBReset line internally (This is
- according to the Hardware Manual). So unless you fabricate a circuit that
- does this (see below), you'll need to reset from the native keyboard. (This
- function should still work. Actually, If you're going to do it this way,
- there's no need to solder the extra wire for _KBReset.)
-
- Now, the A500 keyboard is slightly different. It has no case but it
- will generate a _KBReset signal. Remember how I said you could have two
- kbd's simultaneously? Well, all you have to do is hook up your external as
- described above, and string your wires along (Including _KBReset) to the
- 500 keyboard. What's more, the 500 keyboard is a near-exact fit replace
- ment for the 1200 one (and with full sized Left-Shift and Return keys!). In
- order to do this I had to desolder the LEDs on the 500 kbd altogether and
- then remove the ones from the 1200's "LED board", hot glue them individually
- to their positions, bend the leads down flat, and wire them up again. Also,
- the support on the top part of the wedge-shaped floppy bracket has to be sawed
- off to make room for the encoder board. It works, though, and theoretically I
- should even be able to fit the RF shield back on.
-
- Okay, so you may not like the beige-colored keys of the 500 keyboard
- sticking out of your shiny white 1200 case. The simple solution is to swap
- the 500 keyboard's beige keycaps for your defunct 1200 keyboard's white ones.
- They should be the same in every respect except color. There is, however,
- another alternative. Your original 1200 keyboard may be compatible with the 500
- keyboard's encoder board. Encoder boards that are compatible have a
- slot for one large ribbon cable to fit in. Incompatible encoder boards have
- slots for two small ribbon cables. If compatible, all you have to do is unplug
- the ribbon from the 500 keyboard itself, unscrew the little circuit board in
- the upper-right corner (the encoder board) and remove it along with its
- plastic bottom-shield. You can then plug the ribbon from your 1200 kbd into
- the socket, and wire the encoder board up as you would with the
- true 500 keyboard. This is the setup I had originally. Now, since the ribbon
- comes out of the middle-back of the 1200 keyboard, you have to put the
- controller board in that same vicinity. It's up to you how to mount it, but
- what I did was to first off trash the RF shield. (REAL hackers don' need no
- steenkin' RF shield 8^) ) Then I hot-glued the plastic shield to the bottom of
- the encoder board, and hot-glued this by the lower left corner to the top of
- the hard drive. The other end rests on the floppy cable, and tension from
- the keyboard ribbon folded under the keyboard keeps the whole thing
- steady.
-
- Here's a quick recap:
-
- -Desolder the clock and data pins coming from the onboard A1200
- keyboard microcontroller. (This is probably the hardest part of this
- whole thing.)
-
- -Solder the KBClk, KBDat, _KBReset, +5, and Gnd. lines to the
- locations described in the diagram. (A magnifier lamp is useful for
- this.)
-
- -Hook the KBDat, KBClk, +5, and Gnd. lines up to some sort of
- external keyboard connector, and use the dead internal to reset, OR
-
- Hook the KBDat, KBClk, +5, and Gnd. lines up to some sort of
- external keyboard connector and run the wires along to their
- corresponding locations on a 500 keyboard INCLUDING _KBReset, OR
-
- Hook the KBDat, KBClk, +5, and Gnd. lines up to some sort of
- external keyboard connector and run the wires along to their
- corresponding locations on a 500 keyboard's encoder board INCLUDING
- _KBReset and then plug your 1200 keyboard's ribbon cable into the
- encoder board.
-
- -Seal up, fasten down, make sure there are no solder bridges, shorts,
- etc.
-
- -Power up and enjoy!
-
- ---------------------------------------------------------------------------
- Below are the pinouts for various types of Amiga keyboards.
-
- A500: Ribbon out (usually rainbow)
- Black=1...Purple=8
- ||||||||
- +---------------------------------------+
- | Pin 1->........<-Pin 8 |
- | |||| | XX<--Shield Gnd.
- | A500 |||| \Gnd |
- | Keyboard |||\+5v [===]<--Power LED
- | Encoder ||\_KBReset |
- | |\KBClk [===]<--Drive LED
- | +-----------+ \KBDat |
- Ribbon Socket---->|...........| |
- +---------------------------------------+
- |||||||||||
- ||||||||||| <---To A500 or A1200 Keyboard.
-
- A1000: (Connector on back of keyboard itself)
-
- (Female) +------+
- | |||| | 1=Gnd
- | 1234 | 2=KBClk
- | | 3=KBDat
- +-+ +-+ 4=+5v
- + +
- ++
-
- A2000/3000: (This is from the Hardware book. Not firsthand information.)
-
- (Female) -v-
- / \
- |3 1| 1=KBClk
- | 5 4 | 2=KBDat
- | 2 | 3=NC
- \___/ 4=Gnd.
- 5=+5v
- ---------------------------------------------------------------------------
-
- That's pretty much it. As I said, this isn't a full tutorial, so I'm
- leaving the mechanical considerations up to the reader.
- If you have any other suggestions for improvement let me know, or feel
- free to add them in yourself. Start a credits list if you so desire.
-
- Some final thoughts:
-
- -I wouldn't worry too much about power supply overloading. I've
- got 2 floppys, 2 keyboards, a hard drive, a DataFlyer SCSI+
- SCSI controller, and a MicroBotics 50Mhz 1230XA with '881 and 8
- megs and my stock supply hasn't complained yet.
-
- -You could also use a DPDT switch to switch between internal and
- external keyboards. One side goes to KBClk and KBDat on the internal
- micro, the other side goes to the same lines from the external, and
- the middle goes to the pins on the 8520. The keyboards should be
- able to deal with being switched in or out in midstream.
- (I have not actually tried this one, but don't see why it wouldn't
- work, as it's effectively the same thing as unplugging one keyboard
- and plugging in another one.) The Hardware Manual says the keyboards
- were designed to handle hot connects/disconnects.
-
- -No, IBM keyboards are electrically totally different. You would
- need a microprocessor driven interface to make the translation.
- There is a (fairly involved) hack on Aminet in /hard/hack to do this.
-
- -If you hook everything up and get a pulsing stream of '''s, you've
- got the clock and data lines backwards. Switch them around.
-
- -If you're installing your 1200 in a tower and your tower has a
- Reset button on it, you can hook the _KBReset line and Ground up
- to the button and reset that way.
-
- -As a couple people have asked, I don't have A1200 schematics. The
- data herein is the result of some poking around with a logic probe,
- a little deductive reasoning, some extrapolation from the A500
- schematics, and a lot of trial and error. However, if someone out
- there HAS A1200 schematics, I'll gladly reimburse you for your time
- at a photocopier! 8^)
-
- Enjoy...
- ...Sean Curtin. (smc8516@ultb.isc.rit.edu)
- ^^New address!
-
- The following is an optional modification to the above hack which allows
- the ability to reset the computer from the external keyboard, posted by
- Dana Peters. It looks good, although as of this time I have not yet tried
- it myself.
-
- ----------------------------------------------------------------------------
- 16152.3.26294.1 A1200 external keyboard reset hack
- 7/5/94 06:16 89/4737 ai745@FreeNet.Carleton.CA (Dana Peters)
- Lines 1 to 89 of 89 (100%)
- -----
-
- Got an A1200? What do you think of the keyboard? If you're a touch
- typist you probably figured out pretty fast that the A1200 keyboard
- has a problem with rollover. Try rolling over between two keys on the
- same row, and you're just as likely to get them in the reverse order
- as the forward order. Commodore botched this one, IMHO.
-
- Anyway, I decided to try to "fix" my machine, and found two different
- hacks to put another model Amiga keyboard on the A1200; one by Hans
- Luijten (j.a.w.m.luijten@kub.nl) and another by Sean Curtin
- (squirrel@cup.portal.com). Using the info from these plans I decided
- to add a connector to my A1200 for an A2000/3000 keyboard. Although
- the plans called for two pins to be cut or desoldered to disable the
- internal keyboard, on my machine I tried leaving the connections
- intact, and found that both the internal and external keyboards were
- able to co-exist without problems. Your mileage may vary, however.
-
- The other change I made to the plans was to create a circuit to allow
- the external keyboard to reset the A1200 the way god intended... with
- the three finger salute. This avoids having to use the internal
- keyboard to reset or having to wire up a separate button to perform
- reset. What follows is a uuencoded .lha file containing an IFF
- picture of the external keyboard reset circuit and some additional
- notes.
-
- begin 644 kbreset.lha
- M(4(M;&@U+=P$ !Z&0 U07C' "VMB<F5S970N:69F.OL#B&N;U;;7^<60
- M7DO"<(EDITB$<(M1;+-:E0@2*L(XSA-LMD(X=+@X"7**UU+(6W":<AP&!\@D
- M)"0E@TV4#/9 LT)%TX#@RRQH[2 3@"V2:&K;S;]_[WO-OTECDDL=LMME-B/=
- MF^ &X#X&G.?"$^'-[#M:9(YV]+@^OCH(>7[OJ>KBX^+C^GC(((>5&\Q#YA^Z
- M$8GHAQN,3G]''X'K#Y/)'^@ 8O!QO8&KO@P>4]P7_Q>HA:\P[8JUNB:6X+7%
- M<M=+4%9@Z2]T6FA?\C6Z+<-19ZU4)TK-EW# VQ0SK JT(M+F1"]O^Q7/"+G_
- M>_TVM#6%IY?[O].AFWJ+$<5KY[PL^@<7CWKQYY\N6O(O"UO->WM<7/B%U,+Z
- MMH5QP&;(LZT+_&4&D84P]08J=H7X/C 1A998@9 Q: "@%T/U!QVBTB<Y!6]]
- MB6160:LBAUY]D5M)>N+[A!=_:%#G<BS1; M_!'O[X4%+(M$4^"4-P&LR/ *F
- MW[>18F/C!54---RG[+T+,Q[3@?@D[.^7W2)@2C!,>,5$W!6%'E$2\=4*";PK
- M9/;,)7A14$!JID%8^)AI9X6J;.$]%@ DBUC-7E/BSC"KUA631[Y,F5V7A43"
- MTJPK116VIC78=%;"\+*F-3G[QZPKDV9*>HL-<7M3)7:[XK'W9.=N^^+7F..*
- MK$+-*+PXA9%T4>DP*N+E71?I2!LPJ^P+W4P[QA:6P+FT0TC"K;-%LA32K67E
- M71?J$D[;WE; N:'.RR:3;T+\(K@YCR=1K9RA8C#F/=ET=CW00W5O3E+,?MT6
- M!ICUM./?4%1\$'(&F/>%2UA:IQ6\:\+..**E>%1P"UYC]BBZT>Y!<FZ+7C1(
- M+))DA=_H7,*TD+@I!D/2&/"\DFH#21 2ZQA0W<>T*W[P J'-6!A6.06B7'OB
- M6:+'"OO T5@_9^BSRTG%R@;7(+\FT+*"J046686;"+)"<05EVWJKNO>\*;$E
- MOSE45PY>)1%]N':A? ^PKT2=M>.*Y%6!]F'>@/APDA7(]ZU%](M%HZM%O;,/
- M627Y(,3A7(]R7CHNC)_R/'^J*Y'N,6IO.J;GHKCQ_;U16I.B;G9'6(]Z6$7O
- M4]&@KS<,>H+)'18=>$5E?B=N;))S_".RX=R$5A?C]57")S_IZ!H^H;+R%FDD
- M@=_MG%7U5^&<69('6,F"-$T0IXJZG,ZW%5ERX!>Q +#([X19D,>['" )8,CT
- MY$R"EP:)(8043XK2I+\:0[/Y!!=T\*.#N/B'%[)1>>Z*; GV2]H4\]8ST@C@
- MQ];M8T'[+C%/6(<),=TA*(FHL^/< M$HLZX+6K%9E5,*BE66.L<YZ/>.7MXB
- M3]%K"WI,*VY-C.TEXSX7TXX=&,'41#D86I FZ*/^EL=%K*"DAM"MJD%9EWQ2
- M:]:RE$+XLXHJ>V*37K6Z:-\7\BX'=+Z+XOXE%^7H7Q2[02R?3=%?T>+.%Y;>
- M_8,4WQ"ST*6F*;*8""Z<;]T6;XQ5/\%\%XU'<+_&+.P"U9F 707P"TJ40JT5
- M8J16]Y?^XJ^(5R(5F(7^OAS[&^[M>6OB9X10B%;]J,_R5+PK7/D/<?Y^;@%7
- MD:XO=B%\\G;+>E?*![2UM"] XLK;%$44N_&*[@3Q> ]VNY(O"N^Y*F8+\9@Y
- MMBF\V18)--47,L05>+.W<%_X4"%0+6QH-2WS P 8 @ *4+XQP MK8G)E
- M<V5T+G1X=%S[ ZQKFM8XVJ'C3?@#[#A5>C.Z! 2J0E(=2*\I:J*PJJ,3>;\^
- M[9->Z[N[L=:5^-__M;=I@4H@2,85SC$,,S@.UC:3+]_WC_#Z?O&KY]CWE]/W
- MO_KL?E[I'!RVEV'CO>N%A>HXG(K7P+JV<^O7_?8_V8__<?XXEY5N67YF*[C_
- MEQE3G59<[I[7VRP7 ZO0R1MJV^GT?]52O8N#F.X>0MQ2@P["EQ9$GN*[',0E
- MNL)DBP?#O.RH6 >+W)QURU%N5?!_@RPR<\N$UP@MTC.(X^XEUUG?)/3 XWO=
- M%F]C16\:% MV)6+N7P.*ER$\WSDD_?E07%=??J+B_ _ X%6N<:3W=:6+Y\O@
- M)AEZ!%I0G6.TI95LA7-*L9+B6[;$MYB5'JRB5R\11DAY*4 (/4I7Z:2PDX)B
- MOB7$EE&=][3N,?<4D8B EK[2E@/KHG?OS3NJD %=QUR$UQ+S+=$O/-G=(W%
- M]7=4NK"JZIN7@Z>^>^IS?$5 &?2-;\5=HGI;9PDP=*/MFR$#;TUSOJO?"2VU
- M5ON\0 /]7SI9>"\J<X!>0Z4GSKXJI?0B-Q,H%16/I>BVP-=F(NH!V/?$RO:*
- MD$/H 6@=+LLBH>\ET*S%)!"C54\F2$IQ",J?=SX7 !]LH-YNJYG!?-Y3:%5(
- M#*A5V]CER8$G6P?=3H_,.]0KN,A3:"[ TO9(ZMRA13$[@YF5 A$,GN!:>FBG
- M[EU\6.,)IL@QK0CQ81@W(W4E?05X!?J%9:_K^P?SXE>$;.!5#CBFTY4&<.,B
- MBBR>Z<:80L$PH(>(]UK7WWXU *C@?*$4!*H"4%>;GSX<2@\6^GL^$\SD0-H)
- M/P-K<TK@+VA4$#P@N]66+;0M,[GS(NBG?EXPJ((40^Y5@Q*=3LW[6]Y-0"J-
- M8)K\"C)8(;#BP(3OID99-W2NBI76S7KNR/\_Y"0KYM;')G21Q21:D@@^8P
- M _<G>$A"X$;D%&11%@E@XEPH:E<"/^Q.%2#,BJP(=1UNK()-$ZQB<):6=EG%
- M^-H"?O1"7[7<JGM@=RPCU+P$G[67!V6I$3$=MHDS/ \Q$TE"8+Z 5H;#VCN(
- MG"]8H#R*5Z]G)T='04F :5>OGY/O^WS]NOH!M^X*H&'*F;:A8/O-W-6(!FDF
- M<KYRBKU;.39V)?@D[X*V[-6WGY-=6PI]8QCWKK8GF5M%$S;DU89*7W7C(BE$
- M;NOK"MZY3AH9\0=5P:/65C%\(+NSKU03 <8KACHFT,MB+Q\PIJT%[CH.PQG6
- MVLK8F,YF>3%'+ KUH %,%(^GPRG*'@%I8._AV'R5)IF3RPLIG5]LSC2B5/3-
- ?!<F42(T5\H7QO3#L:XY9Z1A_P.F8F!(934[<,:E )F3
-
- end
- --
- Dana Peters
- Dana.Peters@Software.Mitel.COM
- ai745@Freenet.Carleton.CA
- --
-